book

Link: https://www.amazon.com/Secure-Programming-Cookbook-Cryptography-Authentication/dp/0596003943

TL;DR: A bit of old-fashioned. Not worth reading further.

On all Unix systems each process has

Normally when a process is executed, the effective, real and saved user and group IDs are all set to the real user and group ID of the process's parent respectively. However when the setuid bit is set on the executable the effective and saved user IDs are set to the user ID that owns the file!

In general the effective user or group ID for a process may be changed as long as the new ID is the same as either the real or the saved ID.

Ancillary groups are inherited by a process from its parent process and *they can only be altered by a process with superuser privileges*.

There are two classes of symmetric primitives, both of utmost importance: